package cn.tarena.ht.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import cn.tarena.ht.pojo.Module;

public interface ModuleMapper {
	/**定义一个查询所有模块信息的方法
	 * @return 返回查询到得所有模块信息
	 */
	public List<Module> findAll();

	/**定义一个通过模块ID，修改模块启停状态的方法
	 * @param moduleId 模块ID
	 * @param state 模块的启停状态值
	 */
	@Update("update module_p set state = #{state} where module_id = #{moduleId}")
	public void updateState(@Param("moduleId")String moduleId, @Param("state")int state);
	
	/**定义一个根据模块ID，删除模块的方法
	 * @param moduleId 模块ID
	 */
	@Delete("delete from module_p where module_id = #{moduleId}")
	public void deleteModule(String moduleId);

	/**定义一个新增模块的方法
	 * @param module 新增模块的信息
	 */
	public void saveModule(Module module);

	/**定义一个修改模块信息的方法
	 * @param module 待修改的模块对象信息
	 */
	public void updateModule(Module module);
	
	/**定义一个根据模块ID，查询模块信息的方法
	 * @param moduleId 模块ID
	 * @return 返回查询到得模块信息
	 */
	public Module findModuleById(String moduleId);

	/**定义一个根据模块ID，删除模块与角色关联信息的方法
	 * @param moduleId 模块ID
	 */
	@Delete("delete from role_module_p where module_id = #{moduleId}")
	public void deleteRoleModule(String moduleId);
}
